本发明公开了一种传输控制方法及装置,其中,该方法包括:根据请求的数据对象,产生并发送请求分组;监测请求分组对应的数据分组的超时返回概率;根据监测结果调整传输速率。本发明可以实现降低网络拥塞,并获得最佳的传输速率,解决现有技术中网络拥塞的技术问题。
1.一种传输控制方法,其特征在于,包括:根据请求的数据对象,产生并发送请求分组;监测所述请求分组对应的数据分组的每K轮超时返回概率;其中,每一轮为发出一个请求分组到接收到一个数据分组的整个过程或从发出一个请求分组到超时时间到达时的整个过程;根据监测结果调整传输速率;其中,所述根据监测结果调整传输速率包括:根据监测结果调整传输数据的线程数量;根据调整的线程数量控制传输速率;其中,所述根据监测结果调整传输数据的线程数量包括:在所述超时返回概率小于第一预设值时,增加所述传输数据的线程数量;在所述超时返回概率大于第一预设值小于第二预设值时,保持所述传输数据的线程数量;在所述超时返回概率大于第二预设值时,减少所述传输数据的线程数量;其中,监测所述请求分组对应的数据分组的每K轮超时返回概率包括:监测发送请求分组的次数、以及发送的请求分组在预设时间内未返回对应数据分组的超时次数;根据所述超时次数以及发送请求分组的次数计算所述超时返回概率。
2.根据权利要求1所述的传输控制方法,其特征在于,根据请求的数据对象,产生并发送请求分组包括:获取目的地址以及请求的数据对象标识;产生本次请求的请求标识;根据所述目的地址、请求的数据对象标识以及所述请求标识产生所述请求分组;所述请求标识用于判断所述请求分组是否正确返回对应的数据分组。
3.根据权利要求1所述的传输控制方法,其特征在于,应用于任意同时传输多个请求的传输控制,包括TCP、UDP、基于UDP的P2P、以及基于TCP或UDP扩展协议的传输控制。
4.一种传输控制装置,其特征在于,包括:生成模块,用于根据请求的数据对象,产生请求分组;接口模块,用于发送所述请求分组,接收所述请求分组对应的数据分组;监测模块,用于监测所述数据分组的每K轮超时返回概率;其中,每一轮为发出一个请求分组到接收到一个数据分组的整个过程或从发出一个请求分组到超时时间到达时的整个过程;调整模块,用于根据所述监测模块的监测结果调整传输速率;其中,所述调整模块包括:判断子模块,用于判断所述超时返回概率与第一预设值及第二预设值的关系;调整子模块,用于所述超时返回概率小于第一预设值时,增加所述传输数据的线程数量;所述超时返回概率大于第一预设值小于第二预设值时,保持所述传输数据的线程数量;或者所述超时返回概率大于第二预设值时,减少所述传输数据的线程数量;其中,所述监测模块包括:超时监测子模块,用于监测发送的请求分组在预设的时间内是否返回对应的数据分组;统计子模块,用于统计发送请求分组的次数、以及发送的请求分组在预设时间内未返回对应数据分组的超时次数;计算子模块,用于根据所述超时次数以及发送请求分组的次数计算所述超时返回概率。
5.根据权利要求4所述的传输控制装置,其特征在于,所述生成模块包括:获取子模块,用于获取目的地址以及请求的数据对象标识;生成子模块,用于生成请求标识,并根据所述目的地址、请求的数据对象标识以及所述请求标识产生所述请求分组;所述请求标识用于判断所述请求分组是否正确返回对应的数据分组。
6.根据权利要求4所述的传输控制装置,其特征在于,位于终端或网络侧设备。
技术领域本发明涉及通信领域中传输与IP技术,具体地,涉及一种传输控制方法及装置。
背景技术传统的端到端(Endxa0toxa0End,简称E2E)的拥塞控制机制的主要目标是在因特网的两个端点之间按照路径上面的可用带宽来调节发送速率。E2E中一个源节点只能够从一个特定的目的节点获取数据,在一个会话期间,用户必须按照这条固定的传输路径上面的可用带宽调节传输速率。E2E拥塞控制在提高链路的利用率、减少分组丢失和时延,以及使共享同一条链路的不同用户能够公平的分享带宽和缓存资源方面具有重要意义。但是,P2P网络环境是用传输控制协议(Transmissionxa0ControlProtocol,简称TCP)、或者用户数据报协议(Userxa0Dataxa0Protocol,简称UDP)实现对端点(Peer)之间的数据传输,一个特定的数据对象可能在多个节点上面都存在,一个用户可以同时从多个网络节点上面并发下载这个数据对象。当P2P的客户端到一个目的节点之间的路径发生拥塞时,P2P的客户端可以从另一个目的节点下载;或者降低某些连接下载的速率等待拥塞的缓解。在传统的E2E拥塞控制中由于只有一个连接用户只能降低发送速率。目前P2P更倾向于发生拥塞的时,客户端选择从另外一个目的节点下载以获得更大的传输速率,多数P2P网络采用UDP以获得更好的传输速率。由于UDP没有拥塞控制机制,缺乏速率调整,一旦大量UDP竞争稀缺的网络通路,很有可能导致因特网的崩溃。在实现本发明过程中,发明人发现现有技术中至少存在如下问题:1.不同的P2P应用开发的基于UDP的数据传输方法,没有统一的标准,有的增加速率调整,有的没有速率调整,导致网络资源利用不规范,进而可能导致网络拥塞。2.UDP的传输速率不能自动适应网络传输环境的变化,网络传输的效率不适合P2P应用的要求。
发明内容本发明的第一目的是提出一种传输控制方法,以实现避免网络拥塞,提高传输效率。本发明的第二目的是提出一种传输控制装置,以实现避免网络拥塞,提高传输效率。为实现上述第一目的,根据本发明的一个方面,提供了一种传输控制方法,包括:根据请求的数据对象,产生并发送请求分组;监测请求分组对应的数据分组的超时返回概率;根据监测结果调整传输速率。优选地,根据监测结果调整传输速率可以包括:根据监测结果调整传输数据的线程数量;根据调整的线程数量控制传输速率。优选地,监测请求分组对应的数据分组的超时返回概率可以包括:监测发送请求分组的次数、以及发送的请求分组在预设时间内未返回对应数据分组的超时次数;根据超时次数以及发送请求分组的次数计算超时返回概率为实现上述第二目的,根据本发明的另一个方面,提供了一种传输控制装置,包括:生成模块,用于根据请求的数据对象,产生请求分组;接口模块,用于发送请求分组,接收请求分组对应的数据分组;监测模块,用于监测数据分组的超时返回概率;调整模块,用于根据监测模块的监测结果调整传输速率。优选地,监测模块可以包括:超时监测子模块,用于监测发送的请求分组在预设的时间内是否返回对应的数据分组;统计子模块,用于统计发送请求分组的次数、以及发送的请求分组在预设时间内未返回对应数据分组的超时次数;计算子模块,用于根据超时次数以及发送请求分组的次数计算超时返回概率。本发明各实施例的传输控制方法及装置,通过监测数据分组的超时返回概率,调整传输数据的线程数量,从而调整请求分组的发送速率,使得请求分组的发送速率处于最佳状态,在避免网络链路拥塞的同时获得最大的下载速率,可解决现有技术中P2P开发者不能根据用户的不同接入带宽设计不同的最优数据传输速率的技术难题,且解决现有技术中UDP本身并不提供拥塞控制,不能达到最优的下载速率,可能造成网络拥塞的技术问题。本发明可以满足用户的网络接入带宽和服务质量要求,适用于任意同时传输多个请求或多条链路的应用场景,包括TCP、UDP、基于UDP在P2P网络环境下的应用,以及基于TCP、UDP扩展的其他传输协议,如实时协议(Realxa0Timexa0Protocol,简称RTP)等其他应用场景。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:图1为根据本发明传输控制方法实施例一流程图;图2为根据本发明传输控制方法实施例二流程图;图3为根据本发明传输控制方法实施例三解析示意图;图4为根据本发明传输控制装置实施例一结构示意图;图5为根据本发明传输控制装置实施例二结构示意图。
具体实施方式以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。方法实施例图1为根据本发明传输控制方法实施例一流程图。如图1所示,包括:步骤S102:根据请求的数据对象,产生并发送请求分组;步骤S104:监测请求分组对应的数据分组的超时返回概率;步骤S106:根据监测结果调整传输速率,如:超时返回概率较大则减少传输速率,否则增大传输速率。本实施例通过监测请求分组所对应返回的数据分组的超时返回概率,进而调整传输过程中的下载速率,可以减少网络拥塞,并且由于根据超时情况自动调整速率,因此还可以自动调节下载到最佳值,满足网络接入带宽和服务质量要求。图2为根据本发明传输控制方法实施例二流程图。图2为对图1的细化流程,本实施例主要是通过调整并发传输数据的线程数量来调整和控制传输速率,具体流程如下:步骤S202:在进行传输前设置M个停顿/等待线程以及一个以上的测量线程;步骤S204:从应用层获得一个用户地址列表、获得一个请求的数据对象ID,从用户地址列表中随机抽取一个用户地址作为目的地址;步骤S206:产生一个顺序增加的数字作为表示本次请求分组的请求ID,根据目的地址、应用层请求的数据对象ID、请求ID生成请求分组,M个线程同时发送该分组,并同时启动定时器;步骤S207:判断定时器是否超时,是则执行步骤S210;否则执行步骤S208;步骤S208:判断是否接收到数据分组,是则执行步骤S209;否则继续执行步骤S207;步骤S209:判断接收的数据分组中携带的请求ID是否与本地存储的请求ID相等,如果相等,则向应用层递交数据结束本次传输,如果不相等,则丢弃该分组后返回步骤S204;本实施例中接收端接收到发送端(请求节点)的请求分组后,根据请求分组中携带的请求ID产生一个数据分组,并把请求ID填入到数据分组中,然后向返回该数据分组,以此在发送请求端判断数据分组是否正确,是否为本地发送的请求ID对应的数据分组响应;步骤S210:测量线程根据超时情况统计所发送的请求分组的超时次数,每发送一次请求分组在定时器超时仍未接收到返回的数据分组,则超时次数加一,依次累积统计所有请求分组的超时次数,并计算超时概率:具体地,测量线程统计在一定时间内所有线程发送的总的请求分组的次数和总的超时次数,并计算数据分组的超时返回概率:超时返回概率=总的超时时间的次数/总的请求分组的次数;其中,可以设置K轮统计、以及根据K轮统计的总的超时时间的次数、和总的请求分组的次数计算超时返回概率。每一轮可以是发出一个请求分组到接收到一个数据分组的整个过程,或者步骤S206中定时器设定的超时时间到达时的整个过程。如果将一轮设置为发送请求分组到接收数据分组到的时间过程,这个由于每个请求分组返回的数据分组时间过程不一致,因此采用K轮统计得出的结果计算超时返回概率;如果将一轮设置为定时器设定的超时时间到达时的整个过程,可以直接用定时器的超时时间乘以K,并采用K轮时间统计得出的结果计算超时返回概率。较大的K值可以增加超时返回概率的测量精度,但是将增加M的调整时间;较小的K值减少M的调整时间,但是减少超时概率的测量精度。本领域技术人员可以根据经验选取较为合适的K值,如20、25等等,具体可根据实际情况进行调整,设置计算超时返回概率的固定周期,即监测K轮的情况并进行统计和计算;步骤S212:根据计算的超时返回概率调整M的值,即停顿/等待线程的数目,从而调整请求分组的发送速率以及数据分组的下载速率:如需要增加M,则返回步骤S204;如减少M,则可不返回步骤S204。具体地,调整M的方法可以有很多,本实施例仅举例说明M值的调节采用线性加乘性减的方法:可以预先设置两个参数:0<门限1<门限2<1,门限2和门限1是0到1之间的实数。首先M从一个较小的初始值开始,只要超时返回概率不大于门限1,说明原有的请求分组发送较低,返回的数据分组超时较少,还可以增加传输速率,就增加M值一个常数;如果超时返回概率大于门限1小于门限2,则M值已经在最佳下载速率的最优值得附近,此时可以仅维持M值,保持原有的发送和下载速率;如果超时返回概率大于门限2,则请求分组的发送速率过快但返回下载超时,需要降低发送速率,可以降低M为原来的值的1/x,x是大于1的整数,具体调整如下:1)如果超时返回概率小于第一个门限1(如设置为0.1),则M增加一个固定的值(例如1),当确定需要增加M时可以通过新建立停顿/等待线程来实现;2)如果超时返回概率大于第一个门限值(如0.1)小于第二个门限制(如0.2),则保持M不变;3)如果超时返回概率大于第二个门限值,则减少线程数量,如M变为原来的1/x(如x=2),即M降低为原来的一半。当确定需要减少M时可以通过关闭停顿/等待线程来实现。本实施例中,调整M的过程中,如果门限1定得太低将将导致M在较小阶段就减少,从而降低用户的下载速率;定得过高,将导致较多的超时事件。门限1和门限2之间的差决定M在最优值附近振荡的幅度,本领域技术人员可以根据具体应用选取较为合适的门限1和门限2的值,如:本实施例设置的门限1为0.1、门限2为0.2,具体应用时可以根据实际情况灵活选取,不受本实施例所设置的门限值限制。本实施例通过上面的测量线程监测结果并每过k轮调整M的值,不会过于频繁,根据统计的超时返回概率进行调整,使得停顿/等待线程达到数据的最佳下载速率,减少网络拥塞。当线程M很小时,下载数据的速率也比较小,此时,数据分组超时返回概率也比较小;而当M较大时,通过线程发送请求分组的发送速率较大,此时由于下载的数据率较大并已经接近链路带宽,这个时候将导致较多的数据分组超时,可能导致实际有效的数据下载速率降低。因此,随着M增加,超时返回概率会出现一个突然的增加,而在这个M时,用户的下载速率达到最大。本实施例就是通过调节线程数量,自适应找到这个最优的M值,从而获得最优的传输速率。图3为根据本发明传输控制方法实施例三解析示意图,如图3所示,本实施例应用在诸如BT下载,PPS网络电视或者PPTV网络电视等这些P2P网络环境下,使得用户能够获得最大的数据传输速率。为下面说明方便,将下面的传输控制称为多点对多点(Multi-pointxa0toxa0Multi-point,简称M2M)公共传输控制方式,可以解决现有技术中不同的P2P的开发者设计不同的下载行为,导致网络资源利用不规范,进而导致网络拥塞的技术问题。如图3所示,有(n+1)个节点通过有限的接入带宽接入到网络。每个节点都有其它节点需要的数据。每个节点的目的是尽可能快地从其它节点下载数据。基本的通信模式是:如图3中请求用户作为一个请求节点从其他n个节点(用户1到用户n)中随机选择一个节点作为目的节点,并向该目的节点发送一个请求分组,目的节点接受到请求分组后,按照请求节点的请求分组产生一个数据分组并返回该数据分组。请求分组由于只需要表明请求节点需要的数据对象,因此请求分组一般都很小,而数据分组远大于请求分组。由于某些应用有时延要求以及可能的网络分组丢失,因此请求节点在发送出一个请求分组出去之后,启动一个定时器,在一定时间内如果没有接收到对应的数据分组,定时器超时,则将随机选择另外一个目的节点下载数据。对于多数流媒体应用来说,如果一个节点在一定时间内没有接收到一个特定的数据,该数据对于该节点来说就没有意义了。如果一个数据分组在请求用户客户端的定时器超时之后到达,该分组将被丢弃。一个请求节点向外发送的请求分组越多,它接收到的数据分组也就越多;但是当节点接收到的数据分组速率接近用户的接入链路的速率的时候,将在用户的接入链路形成较大的排队队列,这将导致较大的数据分组超时返回概率和分组丢失,这反而导致用户实际接收到的速率下降。因此,用户向外发送的请求分组的速率太少了将导致用户接收的数据速率较低,请求分组的速率太大也将导致用户接收到的数据速率较低。因此,存在一个最佳的请求分组的发送速率。本实施例中由于每一个请求分组都要启动一个定时器,因此在具体应用时每一个请求分组可以对应一个停顿/等待线程,也可以使用多个相同的停顿/等待线程来实现一个较大的请求分组发送速率。线程数目越多,请求分组的发送速率就越大。如上一段的分析,存在一个最佳的发送速率,因此相对应的,存在一个最优线程数目。可以通过控制线程的数目来控制请求分组的发送速率,从而寻找最优的数据分组下载速率。从图3可以看出,请求用户客户端把请求散布到整个网络,但是距离客户端越近,链路传输流量的压力越大。而所有的流量都得通过接入链路才能传输到客户端。另一个方面,用户都是通过有限的接入带宽接入到网络的,网络链路的速率一般是大于用户的接入带宽的。本实施例提出的M2M的传输的瓶颈最终集中在接入链路的带宽上面,因为即使网络中的某一条链路确实拥塞了,客户端可以选择切换到另外一个节点下载,从而避开这条拥塞的网络链路。图3的传输控制方法可以基于UDP进行数据传输并适用P2P网络环境下的传输数据,本领域技术人员应了解,本发明的传输控制方法适用于任意同时传输多个请求或多条链路的应用场景,包括TCP、UDP、RTP等其他应用场景。上述各方法实施例通过监测数据分组的超时返回概率,通过改变执行停顿等待的线程数目从而调整请求分组的发送速率,自动探测最佳的数据分组下载速率并使工作在最佳传输速率上,在避免网络链路拥塞的同时获得最大的下载速率,满足用户的网络接入带宽和服务质量要求。并且上述实施例对于具体的调整算法以及统计超时返回概率的具体技术内容进行了详细的描述,可以根据需要调整线程M到最佳值,获得最佳的下载速率。装置实施例图4为根据本发明传输控制装置实施例一结构示意图,如图4所示,包括:生成模块1,用于根据请求的数据对象,产生请求分组,具体可参见图2实施例相关说明,在此不再对相同或相似内容进行重复描述;接口模块2,用于发送请求分组,接收请求分组对应的数据分组;监测模块4,用于监测数据分组的超时返回概率;调整模块6,用于根据监测模块的监测结果调整传输速率。本实施例中的生成模块1、监测模块4以及调整模块6可集中成一M2M模块,具体可以应用在同时传输多个请求或多条链路的设备内,如在基于UDP传输数据的P2P网络环境的客户端内,客户端可以位于终端或网络侧设备内,如请求用户终端、接收用户终端,以及网关GPRS支持节点(Gatewayxa0GPRSxa0Supportxa0Node,简称GGSN)、应用网关、内容分发网络(Contentxa0Deliveryxa0Network,CDN)节点、路由器等网络侧设备,本实施例装置的协议堆栈结构可参见下表一:
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/>M2M模块的传输控制功能具体在软件实现时可以在应用层下面和UDP协议层的上面。在用户的终端侧,传输控制的协议线程由两种线程组成:M个停顿/等待线程和至少一个测量线程,M个停顿/等待线程可用于下载数据,改变M可以改变请求发送数据的速率,进而改变数据下载速率;测量线程可以用于下载用户数据,还可以测量网络服务质量,具体的就是通过监测模块4测量定时器超时的概率,然后调整模块6根据定时器超时的概率动态调节M的值,从而调整请求分组的发送速率。图5为根据本发明传输控制装置实施例二结构示意图。图5是图4的进一步细化,如图5所示,监测模块4可以包括:超时监测子模块42,用于监测发送的请求分组在预设的时间内是否返回对应的数据分组;统计子模块44,用于统计发送请求分组的次数、以及发送的请求分组在预设时间内未返回对应数据分组的超时次数;计算子模块46,用于根据超时次数以及发送请求分组的次数计算超时返回概率。调整模块6可以包括:判断子模块62,用于判断超时返回概率与第一预设值及第二预设值的关系,具体可参见图2中关于调整过程的相关说明;调整子模块64,用于超时返回概率小于第一预设值时,增加传输数据的线程数量;超时返回概率大于第一预设值小于第二预设值时,保持传输数据的线程数量;或者超时返回概率大于第二预设值时,减少传输数据的线程数量。生成模块1还可以包括:获取子模块,用于获取目的地址以及请求的数据对象标识;生成子模块,用于生成请求标识,并根据目的地址、请求的数据对象标识以及请求标识产生请求分组;请求标识用于判断请求分组对应的数据分组是否正确。本实施例还包括一传输控制模块8,用于存储协议线程,测量线程与监测模块4相连,用于监测返回概率,并调整停顿/等待线程的数目M,以确定最佳的M值,使得请求分组发放的速率达到最佳。M增加,则需要新增加一些停顿/等待线程以增加请求分组的发送速率;如果M减少,则需要关闭一些线程的数目。为了减少建立线程和关闭线程的时间,传输控制模块8可以建立一个线程池,需要增加线程的时候从线程中取出线程,不需要线程的时候把线程放入线程池。上述方法发明的各个实施例可以在具备图4-图5结构图所示结构的装置中实现。综上所述,本发明各实施例的方法和装置提出一种M2M传输控制机制,在用户终端上设置M个停顿/等待线程和至少一个测量线程,通过M个停顿/等待线程来下载数据,请求分组发送后如果定时器超时之前都没有接收到数据分组,则测量线程可以根据超时返回概率动态调节M的值来控制下载速率。本发明各实施例适用基于UDP协议传输的P2P网络环境的协同下载数据,使得能够按照用户的网络接入带宽和服务质量要求,通过动态调节线程数目控制请求分组发送的速率处于最佳状态,在避免网络链路拥塞的同时,获得最大的下载速率。本发明提出的M2M传输控制方式与传统的端到端(E2E)的拥塞控制传输不同:在E2E传输协议中,由于路径上每一个链路都需要传输S个字节,当两个E2E连接经过同一条链路的时候,由于每一个E2E都需要在这个链路上面传输S个字节,这两个E2E连接只有降低传输速率来公平的分享这条交叉链路上面的带宽了,实际上几乎所有的E2E传输控制协议都是致力于研究如何有效、公平的分享公共传输链路上面的带宽资源。使用本发明的M2M进行传输的方法和装置的流量分散在多条链路上,每个客户端需要在一条链路上传输的流量都很小,避免网络拥塞的情况发生,其重点转移到如何选择更合适的路径或者调解整体传输速率,而不是在某一条链路上的公平性问题,可以选择更合适的链路以及调整最佳的传输速率。可通过各种手段实施本文描述的技术。举例来说,这些技术可实施在硬件、固件、软件或其组合中。对于硬件实施方案,监测模块4、调整模块6可实施在一个或一个以上专用集成电路(ASIC)、数字信号处理器(DSP)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、电子装置、其它经设计以执行本文所描述的功能的电子单元或其组合内。对于固件和/或软件实施方案,可用执行本文描述的功能的模块(例如,过程、步骤、流程等)来实施所述技术。固件和/或软件代码可存储在存储器中并由处理器(例如,图5中的M2M模块)执行。存储器可实施在处理器内或处理器外部。本发明能有多种不同形式的具体实施方式,上面以图1-图5为例结合附图对本发明的技术方案作举例说明,这并不意味着本发明所应用的具体实例只能局限在特定的流程或实施例结构中,本领域的普通技术人员应当了解,上文所提供的具体实施方案只是多种优选用法中的一些示例,任何的实施方式均应在本发明技术方案所要求保护的范围之内。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。